草庐IT

c++ - WinAPI : Add style to combo box

全部标签

c++ - C 字符串是否保证是数组?

C字符串(与std::string相对)是否保证以数组形式实现?例如,我有charconst*str="abc";它归结为str+4是否是一个合法的指针值(没有取消引用)。我问这个是因为我不知道C字符串是否是一种特殊情况,因为终止它的空字符。 最佳答案 问题的第一部分AreCstringsguaranteedtobeimplementedasarrays?Forexample,say,Ihave:charconst*str="abc"是的,字符串对象是数组类型。字符串是一种数据格式,(字符)字符串对象是char类型的array。在您

c++ - 以下片段的区别

请告诉我有什么区别typedefstructTcl_ObjType{char*name;Tcl_FreeInternalRepProc*freeIntRepProc;Tcl_DupInternalRepProc*dupIntRepProc;Tcl_UpdateStringProc*updateStringProc;Tcl_SetFromAnyProc*setFromAnyProc;}Tcl_ObjType;和structTcl_ObjType{char*name;Tcl_FreeInternalRepProc*freeIntRepProc;Tcl_DupInternalRepProc*

c++ - 如何将 unsigned int 放入 char 数组并将其提取回来

有人可以解释为什么这不起作用吗?我正在尝试将一个unsignedint放入一个char缓冲区,然后将其取回另一个unsignedint。1#include2#include3intmain(){4unsignedinttester=320;5charbuffer[512];6memset(buffer,0,512);7memcpy(buffer,&tester,sizeof(unsignedint));8/*buffer[0]|=tester;9buffer[1]|=(tester>>8);10buffer[2]|=(tester>>16);11buffer[3]|=(tester>>

c++ - C/C++ va_list 没有正确返回参数

我在使用va_list时遇到问题。以下代码适用于int:main(){intf1=1;float**m=function(n,f1);}float**function(intn,...){va_listmem_list;va_start(mem_list,n);for(inti=0;i但是,当我更改为float时,即floatf1=1.0;floatf=va_arg(mem_list,float);printf("%f\n",f);它没有返回正确的值(值为0.00000)。我对正在发生的事情感到非常困惑。 最佳答案 在可变参数调用的

c++ - 微小的 SSE addpd 循环比 AMD Phenom II 上的标量稍慢?

是的,我读了SIMDcoderunsslowerthanscalarcode.不,这不是真正的重复。我使用二维数学已有一段时间了,并且正在将我的代码库从C移植到C++。我在使用C时遇到了一些问题,这意味着我确实需要多态性,但那是另一回事了。不管怎样,我之前考虑过这个,但它提供了一个使用2Dvector类的绝好机会,包括常见数学运算的SSE实现。是的,我知道那里有图书馆,但我想自己尝试一下以了解发生了什么,而且我没有使用比+=更复杂的东西。.我的实现是通过,用一个union{__m128dss;struct{doublex;doubley;}}SSE似乎很慢,所以我查看了它生成的ASM输

c++ - 如何将 C++ 共享库与 gcc 链接

我看到了一个带有C++共享库的GCC链接,但我无法自己复制它。所以首先我创建了一个带有测试函数的C++库:g++-shared-olibtest.sotest.c然后我有一个测试主函数,它调用库函数并像这样编译它gcc-oprog.outmain.c-L.-ltest然后我收到错误undefinedreferenceto'testfunc'我认为这是由库中的不同引用引起的...C将函数命名为testfunc,而C++将函数命名为[somestuff]__testfunc[maybeagainsomestuff]。我也试过用gcc-oprog.outmain.c-l:libtest.so

c++ - 纠错码

我需要对短消息(100到200位之间)使用纠错技术。可用于添加冗余位的空间被限制在20-50%。我将不得不在C/C++中实现编码和解码。所以它需要是开源的或者足够容易编程。(我过去有过一些解码算法的经验——它们太可怕了!)谁能建议使用合适的错误代码(带有相关参数)? 最佳答案 看看ReedSolomon纠错。可用C++实现示例here.不同的选项看here-参见第11项编辑:如果你想要一个商业图书馆-http://www.schifra.com/faq.html 关于c++-纠错码,我们

c++ - 使用 c 函数时 C++ 中的命名空间

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:unresolvedoverloadedfunctiontypec++考虑下面的代码片段:#include#include#includeusingnamespacestd;voidtest(){std::stringstr="HelloWorld!";std::transform(str.begin(),str.end(),str.begin(),tolower);}关于tolower有错误使用G++编译时:未解析的重载函数。如果usingnamespacestd;已删除,代码工作正常。那么,我的问题是:n

c++ - 将 _msize 与 new[] 一起使用安全吗?

将Microsoft特定的_msize()函数与新的[]一起使用是否安全?例子:int*i=newint[100];size_ts=_msize(i);coutMSDN确实只描述了malloc&Co的用法。我已经使用VisualStudio2010测试了代码,它看起来可以工作!但我想知道是否有一些预期的问题或任何特殊情况? 最佳答案 如果有人为您的类型覆盖operatornew,则可能会出现问题。写起来一样简单constsize_ts=100;int*i=newint[s];或者,如果你真的写C++std::vectori(100)

c++ - 返回指针 c

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:PointertolocalvariableCanalocalvariable'smemorybeaccessedoutsideitsscope?我有一个有趣的问题。我有一个返回指针的读取函数:char*myReadFunc(){charr[10];//somecodethatreadsdataintor.returnr;}现在,我调用这个函数来为我拥有的一些变量分配信息:char*s;//Somecodetospecifywheretoreadfrom.s=myReadFunc();这会产生我预期的结果。但